<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <h1 data-lake-id="lVRaC" id="lVRaC"><span data-lake-id="u1c10a3ba" id="u1c10a3ba">面试者背景</span></h1>
  <p data-lake-id="ua6a387a6" id="ua6a387a6"><span data-lake-id="ua639b966" id="ua639b966">​</span><br></p>
  <blockquote data-lake-id="u9afe6761" id="u9afe6761" class="lake-alert lake-alert-warning">
   <p data-lake-id="ue066a78f" id="ue066a78f" style="text-align: left"><strong><span data-lake-id="u03ad7a38" id="u03ad7a38" class="lake-fontsize-12">7</span></strong><strong><span data-lake-id="u7c7e68d1" id="u7c7e68d1" class="lake-fontsize-12">年，</span></strong><strong><span data-lake-id="u88c19345" id="u88c19345" class="lake-fontsize-12">Java</span></strong><strong><span data-lake-id="u34842dbd" id="u34842dbd" class="lake-fontsize-12">后端，</span></strong><strong><span data-lake-id="ube1b9a13" id="ube1b9a13" class="lake-fontsize-12">2</span></strong><strong><span data-lake-id="ua83e57ae" id="ua83e57ae" class="lake-fontsize-12">家大厂工作各</span></strong><strong><span data-lake-id="u46604148" id="u46604148" class="lake-fontsize-12">3</span></strong><strong><span data-lake-id="u87aa7ff6" id="u87aa7ff6" class="lake-fontsize-12">年，下单页、订单、性能，稳定性，民宿业务，导购、页面耗时优化，</span></strong></p>
   <p data-lake-id="u1969d757" id="u1969d757" style="text-align: left"><strong><span data-lake-id="u23015206" id="u23015206" class="lake-fontsize-12">导购页面性能优化方案，有哪些？有哪些技术手段？链路梳理、流程优化（异步）、代码性能优化、外调接口异步，线程池并行查询，</span></strong><strong><span data-lake-id="ue6d9eddb" id="ue6d9eddb" class="lake-fontsize-12">completableFuture</span></strong><strong><span data-lake-id="uaa9434f7" id="uaa9434f7" class="lake-fontsize-12">，</span></strong></p>
   <p data-lake-id="u34b95b75" id="u34b95b75" style="text-align: left"><strong><span data-lake-id="u58b8f492" id="u58b8f492" class="lake-fontsize-12">如果外部接口的</span></strong><strong><span data-lake-id="uda5adfdd" id="uda5adfdd" class="lake-fontsize-12">RT</span></strong><strong><span data-lake-id="ucf24c386" id="ucf24c386" class="lake-fontsize-12">无法保证，如何处理？弱依赖、降级。比如评价没查到，如何降级？</span></strong></p>
   <p data-lake-id="u18bd6177" id="u18bd6177" style="text-align: left"><strong><span data-lake-id="ucde73822" id="ucde73822" class="lake-fontsize-12">如果有一个外部接口必要降级，你自己会怎么做？</span></strong></p>
   <p data-lake-id="ucfb44482" id="ucfb44482" style="text-align: left"><strong><span data-lake-id="udc92ba40" id="udc92ba40" class="lake-fontsize-12">completableFuture</span></strong><strong><span data-lake-id="uc6b6eb5f" id="uc6b6eb5f" class="lake-fontsize-12">用了它的什么功能？流式编程，他和</span></strong><strong><span data-lake-id="ufe504f99" id="ufe504f99" class="lake-fontsize-12">executorService</span></strong><strong><span data-lake-id="ub1d4634d" id="ub1d4634d" class="lake-fontsize-12">区别是啥？线程窃取，</span></strong></p>
   <p data-lake-id="ufb14ec04" id="ufb14ec04" style="text-align: left"><strong><span data-lake-id="u7dc71b2c" id="u7dc71b2c" class="lake-fontsize-12">导购这部分的难点？性能，复用性，</span></strong></p>
   <p data-lake-id="u00c7ec4e" id="u00c7ec4e" style="text-align: left"><strong><span data-lake-id="u89dec464" id="u89dec464" class="lake-fontsize-12">分库分表做过吗？分库分表之后全局</span></strong><strong><span data-lake-id="u4e3e3cfa" id="u4e3e3cfa" class="lake-fontsize-12">ID</span></strong><strong><span data-lake-id="u23ad9cea" id="u23ad9cea" class="lake-fontsize-12">如何做的？雪花算法（时间戳、机器码、业务类型、标记位），时钟回拨问题？分表字段如何选的？分表算法是什么？假如</span></strong><strong><span data-lake-id="uf5f07802" id="uf5f07802" class="lake-fontsize-12">128</span></strong><strong><span data-lake-id="u198cd86f" id="u198cd86f" class="lake-fontsize-12">分表不够了怎么办？再扩容</span></strong><strong><span data-lake-id="u622a2f62" id="u622a2f62" class="lake-fontsize-12">+</span></strong><strong><span data-lake-id="u3ada757d" id="u3ada757d" class="lake-fontsize-12">迁移、数据清理。业务不中断情况下数据迁移如何做？存量迁移和增量双写之间如何避免丢数据？</span></strong></p>
   <p data-lake-id="u1ad43409" id="u1ad43409" style="text-align: left"><strong><span data-lake-id="u08262f2e" id="u08262f2e" class="lake-fontsize-12">如果有一个大的商户，导致数据倾斜，如何解决？</span></strong></p>
   <p data-lake-id="u7ef053cb" id="u7ef053cb" style="text-align: left"><strong><span data-lake-id="ud785cd09" id="ud785cd09" class="lake-fontsize-12">幂等是什么？如何保证读幂等？读用做幂等吗？写请求的幂等如何保证？加锁、校验、执行。加锁用什么锁？不加锁有啥问题？如果有唯一性约束了，还需要加锁吗？</span></strong><strong><span data-lake-id="uc5388467" id="uc5388467" class="lake-fontsize-12">f(x)=</span></strong><strong><span data-lake-id="u7d60cb92" id="u7d60cb92" class="lake-fontsize-12"> </span></strong><strong><span data-lake-id="uc75c075d" id="uc75c075d" class="lake-fontsize-12">f(f(x))</span></strong></p>
   <p data-lake-id="uee78f5b3" id="uee78f5b3" style="text-align: left"><strong><span data-lake-id="u9a338e3e" id="u9a338e3e" class="lake-fontsize-12">Redis</span></strong><strong><span data-lake-id="ua7cea3e5" id="ua7cea3e5" class="lake-fontsize-12">实现分布锁的时候，哪些问题需要考虑？超时时间、</span></strong><strong><span data-lake-id="u58ac709f" id="u58ac709f" class="lake-fontsize-12">redisson</span></strong><strong><span data-lake-id="u095f5f11" id="u095f5f11" class="lake-fontsize-12">（</span></strong><strong><span data-lake-id="u8a419156" id="u8a419156" class="lake-fontsize-12">watchdog</span></strong><strong><span data-lake-id="uf2b0b5b0" id="uf2b0b5b0" class="lake-fontsize-12">）、</span></strong><strong><span data-lake-id="uc941e88f" id="uc941e88f" class="lake-fontsize-12">redlock</span></strong><strong><span data-lake-id="u633432b3" id="u633432b3" class="lake-fontsize-12">解决的是什么问题？拿到锁的机器挂了会有啥问题吗？</span></strong></p>
   <p data-lake-id="u0cb7960a" id="u0cb7960a" style="text-align: left"><strong><span data-lake-id="uf5f463f0" id="uf5f463f0" class="lake-fontsize-12">工作</span></strong><strong><span data-lake-id="u759e5d1b" id="u759e5d1b" class="lake-fontsize-12">7</span></strong><strong><span data-lake-id="u6ec75b7d" id="u6ec75b7d" class="lake-fontsize-12">年来，遇到的最大挑战是什么？稳定性，衡量稳定性指标？</span></strong><strong><span data-lake-id="uac1c4dc1" id="uac1c4dc1" class="lake-fontsize-12">SLA,</span></strong><strong><span data-lake-id="u78541af5" id="u78541af5" class="lake-fontsize-12">几个九（宕机时间）、</span></strong></p>
   <p data-lake-id="ubcafe0b0" id="ubcafe0b0" style="text-align: left"><strong><span data-lake-id="u96484d14" id="u96484d14" class="lake-fontsize-12">设计一个高可用的架构考虑哪些方案？异地多活、微服务、限流熔断降级、</span></strong></p>
   <p data-lake-id="u3c1419ec" id="u3c1419ec" style="text-align: left"><strong><span data-lake-id="u2419ffa9" id="u2419ffa9" class="lake-fontsize-12">限流、降级，熔断区别是啥？限流保护自己、给外部接口降级、</span></strong></p>
   <p data-lake-id="u82f55bab" id="u82f55bab" style="text-align: left"><strong><span data-lake-id="udb085a74" id="udb085a74" class="lake-fontsize-12">压测做过吗？什么是全链路压测？如何避免压测数据影响正常数据？压测标、影子表。压测标自己识别吗？</span></strong></p>
   <p data-lake-id="ufcd9dde7" id="ufcd9dde7" style="text-align: left"><strong><span data-lake-id="u00396b83" id="u00396b83" class="lake-fontsize-12">大促除了压测，预案怎么做的？大促封网状态，如何保证预案能执行？预案开关、</span></strong></p>
   <p data-lake-id="ua885d721" id="ua885d721" style="text-align: left"><strong><span data-lake-id="u21eccbeb" id="u21eccbeb" class="lake-fontsize-12">线上问题排查案例讲一个。Fullgc，如何用arthas定位到那个大的list的？</span></strong></p>
  </blockquote>
  <h1 data-lake-id="FChSX" id="FChSX"><span data-lake-id="ubd560f90" id="ubd560f90">题目解析</span></h1>
  <p data-lake-id="u26e467c5" id="u26e467c5"><br></p>
  <blockquote data-lake-id="u6899ae75" id="u6899ae75" class="lake-alert lake-alert-color4">
   <p data-lake-id="u60bdb88d" id="u60bdb88d" style="text-align: left"><span data-lake-id="u3201a4b8" id="u3201a4b8" class="lake-fontsize-12">导购页面性能优化方案，有哪些？有哪些技术手段？链路梳理、流程优化（异步）、代码性能优化、外调接口异步，线程池并行查询，completableFuture，</span></p>
   <p data-lake-id="udb788501" id="udb788501" style="text-align: left"><span data-lake-id="u6f0f4a29" id="u6f0f4a29" class="lake-fontsize-12">如果外部接口的</span><span data-lake-id="u18c66086" id="u18c66086" class="lake-fontsize-12">RT</span><span data-lake-id="ua60f954f" id="ua60f954f" class="lake-fontsize-12">无法保证，如何处理？弱依赖、降级。比如评价没查到，如何降级？</span></p>
   <p data-lake-id="uaafc8bcb" id="uaafc8bcb" style="text-align: left"><span data-lake-id="u9ae2ee9c" id="u9ae2ee9c" class="lake-fontsize-12">如果有一个外部接口必要降级，你自己会怎么做？</span></p>
   <p data-lake-id="u56d8dc6d" id="u56d8dc6d" style="text-align: left"><span data-lake-id="uf14692d6" id="uf14692d6" class="lake-fontsize-12">completableFuture</span><span data-lake-id="uc3aad21a" id="uc3aad21a" class="lake-fontsize-12">用了它的什么功能？流式编程，他和</span><span data-lake-id="u01a24426" id="u01a24426" class="lake-fontsize-12">executorService</span><span data-lake-id="ufb933121" id="ufb933121" class="lake-fontsize-12">区别是啥？线程窃取，</span></p>
   <p data-lake-id="u1c5d50bb" id="u1c5d50bb" style="text-align: left"><span data-lake-id="u19272749" id="u19272749" class="lake-fontsize-12">导购这部分的难点？性能，复用性，</span></p>
  </blockquote>
  <p data-lake-id="u540cf76b" id="u540cf76b"><br></p>
  <p data-lake-id="u8806e1fc" id="u8806e1fc"><br></p>
  <p data-lake-id="u9279c53d" id="u9279c53d"><br></p>
  <blockquote data-lake-id="u607d3203" id="u607d3203" class="lake-alert lake-alert-color4">
   <p data-lake-id="u26cf17e9" id="u26cf17e9" style="text-align: left"><span data-lake-id="u41392ca9" id="u41392ca9" class="lake-fontsize-12">分库分表做过吗？分库分表之后全局ID如何做的？</span></p>
   <p data-lake-id="u00250429" id="u00250429" style="text-align: left"><span data-lake-id="u2257ad2c" id="u2257ad2c" class="lake-fontsize-12">雪花算法？（时间戳、机器码、业务类型、标记位），时钟回拨问题？分表字段如何选的？分表算法是什么？</span></p>
   <p data-lake-id="ud95b0faf" id="ud95b0faf" style="text-align: left"><span data-lake-id="ua7671527" id="ua7671527" class="lake-fontsize-12">假如128分表不够了怎么办？再扩容+迁移、数据清理。</span></p>
   <p data-lake-id="u48f0ed47" id="u48f0ed47" style="text-align: left"><span data-lake-id="u335274f4" id="u335274f4" class="lake-fontsize-12">业务不中断情况下数据迁移如何做？存量迁移和增量双写之间如何避免丢数据？</span></p>
   <p data-lake-id="u17f8e402" id="u17f8e402" style="text-align: left"><span data-lake-id="ucc22d494" id="ucc22d494" class="lake-fontsize-12">如果有一个大的商户，导致数据倾斜，如何解决？</span></p>
  </blockquote>
  <p data-lake-id="u78324a50" id="u78324a50"><br></p>
  <p data-lake-id="u08843e10" id="u08843e10"><br></p>
  <blockquote data-lake-id="ud41f2cf6" id="ud41f2cf6" class="lake-alert lake-alert-color4">
   <p data-lake-id="u867c3b56" id="u867c3b56" style="text-align: left"><span data-lake-id="ufde87d34" id="ufde87d34" class="lake-fontsize-12">幂等是什么？如何保证读幂等？读用做幂等吗？写请求的幂等如何保证？加锁、校验、执行。加锁用什么锁？不加锁有啥问题？如果有唯一性约束了，还需要加锁吗？f(x)= f(f(x))</span></p>
  </blockquote>
  <p data-lake-id="u0ca00008" id="u0ca00008"><br></p>
  <blockquote data-lake-id="uc0b0c19a" id="uc0b0c19a" class="lake-alert lake-alert-color4">
   <p data-lake-id="u10d49dc0" id="u10d49dc0" style="text-align: left"><span data-lake-id="ucdfba64a" id="ucdfba64a" class="lake-fontsize-12">Redis实现分布锁的时候，哪些问题需要考虑？超时时间、redisson（watchdog）、redlock解决的是什么问题？拿到锁的机器挂了会有啥问题吗？</span></p>
  </blockquote>
  <p data-lake-id="u54452422" id="u54452422"><br></p>
  <blockquote data-lake-id="u690ea2bd" id="u690ea2bd" class="lake-alert lake-alert-color4">
   <p data-lake-id="u550035dc" id="u550035dc" style="text-align: left"><span data-lake-id="ub1389d0f" id="ub1389d0f" class="lake-fontsize-12">工作7年来，遇到的最大挑战是什么？稳定性，衡量稳定性指标？SLA,几个九（宕机时间）、</span></p>
  </blockquote>
  <p data-lake-id="u9f9d3b3d" id="u9f9d3b3d"><br></p>
  <blockquote data-lake-id="u4bbaf487" id="u4bbaf487" class="lake-alert lake-alert-color4">
   <p data-lake-id="u9489398c" id="u9489398c" style="text-align: left"><span data-lake-id="uade77fd0" id="uade77fd0" class="lake-fontsize-12">设计一个高可用的架构考虑哪些方案？异地多活、微服务、限流熔断降级、</span></p>
   <p data-lake-id="u724869cd" id="u724869cd" style="text-align: left"><span data-lake-id="udacae9c7" id="udacae9c7" class="lake-fontsize-12">限流、降级，熔断区别是啥？限流保护自己、给外部接口降级、</span></p>
  </blockquote>
  <p data-lake-id="u84c5d3c6" id="u84c5d3c6"><br></p>
  <p data-lake-id="ub4d70a21" id="ub4d70a21"><br></p>
  <blockquote data-lake-id="uff98ab2b" id="uff98ab2b" class="lake-alert lake-alert-color4">
   <p data-lake-id="u7d30f21c" id="u7d30f21c" style="text-align: left"><span data-lake-id="u10556caa" id="u10556caa" class="lake-fontsize-12">压测做过吗？什么是全链路压测？如何避免压测数据影响正常数据？压测标、影子表。压测标自己识别吗？</span></p>
   <p data-lake-id="uf49c93f2" id="uf49c93f2" style="text-align: left"><span data-lake-id="u15ef9452" id="u15ef9452" class="lake-fontsize-12">大促除了压测，预案怎么做的？大促封网状态，如何保证预案能执行？预案开关、</span></p>
  </blockquote>
  <p data-lake-id="uc05bfba9" id="uc05bfba9"><br></p>
  <p data-lake-id="ub8d4b0f7" id="ub8d4b0f7"><br></p>
  <blockquote data-lake-id="u2ecfd30c" id="u2ecfd30c" class="lake-alert lake-alert-color4">
   <p data-lake-id="uab3ce311" id="uab3ce311" style="text-align: left"><span data-lake-id="u7e7f0d42" id="u7e7f0d42" class="lake-fontsize-12">线上问题排查案例讲一个。Fullgc，如何用arthas定位到那个大的list的？</span></p>
  </blockquote>
  <p data-lake-id="uaf94d597" id="uaf94d597"><br></p>
 </body>
</html>